import { Entity, PrimaryGeneratedColumn, Column, ManyToOne } from 'typeorm'
import { ModelSchema } from './model-schema.entity'

/**
 * 字段定义实体
 * 用于描述模型的每个字段（如字段名、类型、是否必填等）
 */
@Entity('va_field_definitions')
export class FieldDefinition {
  /** 字段主键ID */
  @PrimaryGeneratedColumn()
  id: number

  /** 字段英文名 */
  @Column({ length: 100 })
  name: string

  /** 字段类型（string/number/boolean/date等） */
  @Column({ length: 50 })
  type: string

  /** 字段显示名 */
  @Column({ length: 100, nullable: true })
  label: string

  /** 是否必填 */
  @Column({ default: false })
  required: boolean

  /** 所属模型 */
  @ManyToOne(() => ModelSchema, (model) => model.fields, { onDelete: 'CASCADE' })
  model: ModelSchema
}
